iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
0
Modern Web

PHP框架-Symfony4 + api platform 系列 第 20

Day#20 API platform的開關及format設定

  • 分享至 

  • xImage
  •  

說好了這一篇要來結束api platform !! 既然要結束,就來講點補充的東西 => 除了json以外的 format


但是講了這麼多api platform 的東西 ,好像一直都沒有提到要怎麼設定進入點的開關及api docs的開關...

有種東西做完了但還沒包裝的感覺...

要設定開關,我們要到config目錄下的子目錄的api_platform.yaml裡

一開始會有預設的幾個屬性,如果要做額外的設定,可以在把相關屬性加上去,像我們要的開關就屬於額外要加的屬性

1.api docs 開關 => enable_docs

2.api 進入點開關 => enable_entrypoint

api_platform:
    mapping:
        paths: ['%kernel.project_dir%/src/Entity']
    formats:
        jsonld:
            mime_types:
                - application/ld+json
        json:
            mime_types:
                - application/json
        html:
            mime_types:
                - text/html
        jsonhal:
            mime_types:
                - application/hal+json

    enable_docs: false
    enable_entrypoint: false

以上兩個設定的預設值是true 開啟 , false 為關閉 , 這兩個設定通常用在prod環境

format , 除了先前講到的json 和 jsonld外,還有一些其他的格式,像api_platform.yaml裡的其他兩種,
看起來由上到下就是常用順序XD,
假設我們今天要再加一個新的format,只要依序加下去,然後給mime_type就可以了

再提醒一次~因為yaml格式很嚴謹, 有時候多一格空格,少一格空格都會無法執行

如果我們要在特定一支API裡要求特定的格式,可以先在Api Resource 的attributes設定裡

attributes={"pagination_items_per_page"=10,"pagination_client_enabled" = true,
            "order"={"birthDay": "ASC"},
            "formats"={"jsonld","json","html","html","jsonhal","csv"={"text/csv"}}
           }

formats裡面放的是格式 , 等等 csv 後面那個是在幹嘛 ...?
那個是它的mime_type啦~因為我們在設定檔裡沒有CSV這個format , 也可以直接寫在這~

好了到這邊 , 終於把api platform告一段落了 ...
下一篇開始 ,每一篇都會舉一兩個實際開發的案例,
也就是分享小菜鳥一路走來有踩到的雷或是用到的東西或是一些基本的觀念

做任何事就像蓋房子一樣,地基要穩,不然上面的樓層蓋的在漂亮,有一天意外來了還是會崩塌

怎麼突然感慨了起來... XD


上一篇
Day#19 哪扇API的門用哪把鑰匙開 - 權限
下一篇
Day#21 小菜鳥踩雷之第一篇- API platform IRI 前綴問題
系列文
PHP框架-Symfony4 + api platform 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言